SnowflakeのCLIクライアント「SnowSQL」をLinuxにインストールしてみた
こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。
SnowflakeにはSnowSQLというCLIクライアントがあります。このCLIクライアントでは、SnowflakeへのSQLクエリの実行やデータのロード、アンロードを含むDDLおよびDMLを実行することができます。
今回は、このSnowSQLをLinux(Windows Sybsystem for LinuxのUbuntu)にインストールしてみたいと思います。インストール方法は下記のドキュメントに記載されているので、こちらに沿ってやってみます。
前提条件
環境はWindows10のWSL(Ubuntu 18.04)となります。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
インストーラのダウンロード
Linux向けには、パッチの自動アップグレードが有効なインストーラと、バージョンを固定して自動アップグレードをしないRPMの2つがあるようです。
今回はバージョン固定は気にしないので、パッチの自動アップグレードが有効なインストーラをダウンロードしたいと思います。
ダウンロードは、SnowflakeのRepositoryから行えます。
今回は2020/07/03時点で最新バージョンとなる1.2.7を対象としたいので、下記コマンドをWSLから実行します。
$ cd /tmp $ curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.7-linux_x86_64.bash
これでインストールの準備ができました。
インストールの実行
では早速インストールしていきます。bashコマンドでインストーラを起動します。
$ bash snowsql-1.2.7-linux_x86_64.bash
まず最初にインストール先を聞かれます。今回は~/bin
で構わないので、そのままEnterで進めます。
********************************************************************** Installing SnowSQL, Snowflake CLI. ********************************************************************** Specify the directory in which the SnowSQL components will be installed. [~/bin]
実行ディレクトリをPATHに含めるか聞かれるので、これはy
とします。
Do you want to add /home/ubuntu/bin to PATH in /home/ubuntu/.profile? [y/N] y
インストールが進むので、しばし待ちます。
Updating /home/ubuntu/.profile to have /home/ubuntu/bin in PATH Open a new terminal session to make the updated PATH take effect. ********************************************************************** Congratulations! Follow the steps to connect to Snowflake DB. ********************************************************************** 1. Open a new terminal window. 2. Execute the following command to test your connection: snowsql -a <account_name> -u <login_name> Enter your password when prompted. Enter !quit to quit the connection. 3. Add your connection information to the ~/.snowsql/config file: accountname = <account_name> username = <login_name> password = <password> 4. Execute the following command to connect to Snowflake: snowsql See the Snowflake documentation <https://docs.snowflake.net/manuals/user-guide/snowsql.html> for more information.
無事にインストールされたようです!
接続テスト
さきほど表示された手順の「2.」に従って接続テストをしてみます。新しくターミナルを開きなおして下記のコマンドでテスト接続します。
$ snowsql -a foo_bar.ap-northeast-1.aws -u foo_bar Password: Passw0rd! * SnowSQL * v1.2.7 Type SQL statements or !help foo_bar#(no warehouse)@(no database).(no schema)>!q Goodbye!
うまく接続できました。なお切断には!quit
コマンド(またはエイリアスの!q
)か、Ctrl + d
キーで切断できます。
最後に、configファイルを設定してデフォルト接続情報を利用した接続も試してみます。ドキュメントを参考に、下記のようにconfigファイルを設定します。これで、デフォルトの接続設定はconfigファイルの設定を見てくれるようになります。
[connections] accountname = foo_bar.ap-northeast-1.aws username = foo_bar password = "Passw0rd!"
パスワードを平文で記載しているので、ドキュメントの注意書きにある通り、ファイルのパーミッション設定もしておきます。
$ chmod 700 ~/.snowsql/config
設定ができたので、今度は引数無しでsnowsql
コマンドを実行してみます。
$ snowsql * SnowSQL * v1.2.7 Type SQL statements or !help foo_bar#(no warehouse)@(no database).(no schema)> Goodbye!
想定通り、接続できました!
まとめ
以上、SnowSQLのインストールを試してみました。CLIベースでSnowflakeの操作をしたい際に、うまくSnowSQLを活用していきたいと思います。
どなたかのお役に立てば幸いです。それでは!